Wyobraź sobie Pytigona nie jako monolityczną bestię, lecz jako precyzyjnie nastrojoną orkiestrę, w której każdy instrument zna swoją partię i może grać solo albo w harmonii z innymi. Architektura oddycha zasadą rozdzielenia odpowiedzialności (separation of concerns), pozwalając jednocześnie na płynne rekombinacje — niczym klocki Lego, z których z tego samego zestawu można zbudować zamek, statek kosmiczny albo robota.
Pytigon rozkłada się na trzy fundamentalne warstwy, z których każda ma własną duszę:
| Warstwa | Rola | Dusza |
|---|---|---|
| Klient | Twarz aplikacji | Wygląd, interakcja z użytkownikiem, obliczenia lokalne |
| Serwer | Mózg | Logika biznesowa, orkiestracja, przetwarzanie danych |
| Baza danych | Pamięć | Trwały stan, źródło prawdy |
Wyjątkowość Pytigona polega na tym, że warstwy te mogą żyć na jednej maszynie — laptopie programisty pochłaniającego kawę o 2 w nocy — albo być rozproszone po kontynentach, połączone jedynie pakietami TCP i nadzieją.
System nie narzuca jednej topologii. Zamiast tego oferuje całe spektrum:
[row] Ta elastyczność oznacza, że możesz zacząć prototypowanie z SQLite wbudowanym w aplikację desktopową, a gdy zapukają inwestorzy — przejść na PostgreSQL w chmurze wspierany przez Gunicorn i Nginx, nie przepisując ani jednej linijki logiki biznesowej.
W rdzeniu serwera bije Django. Pytigon nie owija Django w folię bąbelkową — rozszerza je z chirurgiczną precyzją:
models.Model z Django wyposażony w kolumnę JSON, która działa jak elastyczne rozszerzenie schematu. Pomyśl o tym jak o modelach Django w wygodnych, rozciągliwych spodniach..ihtml kompilują się do standardowych szablonów Django. Składnia oparta na wcięciach eliminuje wizualny szum znaczników {% endblock %}, zamieniając kod szablonu z rozwlekłej umowy w czytelną prozę.Między klientem a serwerem płynie rzeka protokołów:
Pytigon natywnie posługuje się dwoma językami klienta:
Pod widocznymi warstwami szumi wirtualny system plików, który abstrahuje magazyn danych do jednolitego interfejsu. Pliki mogą żyć na dysku, w bazie danych, na zdalnych serwerach albo w pamięci — a kod aplikacji nigdy nie musi znać różnicy.
Pytigon nie jest zamkniętym ogrodem. Punkty rozszerzeń są wszędzie:
Dokument architektury poszczególnych komponentów jest kontynuowany w kolejnych rozdziałach. Na razie zapamiętaj jedno: Pytigon to efekt tego, co powstaje, gdy programista Django, zmęczony pisaniem kodu szablonowego (boilerplate), postanawia zbudować framework, który wyręcza go w nudnych zadaniach, byś mógł skupić się na tych ciekawych.